using System;
using System.Collections.Generic;

using Atomic.Structures;
using Atomic.Vasp;

namespace Atomic.Thermodynamics
{
	[Serializable]
	public class PhononCalculation
	{
		public PhononCalculation()
		{
			LinearResponses = new List<PhononCalculationLinearResponse>();
		}

		/// <summary>
		/// The ideal input base structure.
		/// </summary>
		public Structure BaseStructure
		{
			get;
			set;
		}

		/// <summary>
		/// The full relaxation of the base structure (volume, shape, and positions; ISIF=3).
		/// </summary>
		public VaspResult RelaxationResult
		{
			get;
			set;
		}

		/// <summary>
		/// The super structure generated from the relaxed base structure.
		/// </summary>
		public Structure SuperStructure
		{
			get;
			set;
		}

		public List<PhononCalculationLinearResponse> LinearResponses
		{
			get;
			private set;
		}
	}
}
